#include <iostream>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>

using std::cout;
using std::endl;

void Daemon()
{
    int fd = open("/tmp/log", O_CREAT | O_RDWR, 0600);
    if(!fork()){
        // 设置新会话组
        setsid();     
        // 将程序运行工作目录挂载到根目录
        chdir("/");
        // 设置掩码
        umask(0);
        // 关闭标准输入、出，错误输出
        for(int i{}; i < 3; i++){
            close(i);
             
        }

        char buf[] = "i am handsome...\n";
        while(1){
            write(fd, buf, sizeof(buf));
        }
    }
    // 关闭父进程
    exit(0);
}

int main(int args, char *argv[])
{
    Daemon();
    return 0;
}